package utils

import (
	"encoding/json"

	"github.com/zeromicro/go-zero/core/logx"
)

func StructToJson(data any) string {
	jsons, errs := json.Marshal(data) //转换成JSON返回的是byte[]
	if errs != nil {
		logx.Errorf("%s", "StructToJson marshal error:"+errs.Error())
		return ""
	}
	return string(jsons)
}

func JsonToStruct(data string, target any) error {
	str := []byte(data)
	err := json.Unmarshal(str, &target)
	//解析失败会报错，如json字符串格式不对，缺"号，缺}等。
	if err != nil {
		logx.Errorf("JsonToStruct unmarshal error:%s", err.Error())
		return err
	}
	return nil
}
